﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIPDTO;
namespace SIPDAL
{
   public class mgBautizo
    {
        SIPDataContext dc = new SIPDataContext();
        dtoError _resp = new dtoError();
        tblBautizo _tbbautizo = new tblBautizo();
        List<dtoBautizos> _bautizo = new List<dtoBautizos>();

        /// <summary>
        /// Obtiene los datos de los bautizos por parroquia para mostrar en el listado
        /// </summary>
        /// <param name="canton"></param>
        /// <returns></returns>
        public List<dtoBautizos> ObtenerBautizosxParroquia(dtoBautizos bautizo)
        {
            int i = 0;

            try
            {

                var condicion = (from p in dc.tblBautizos
                                 where p.id_parroquia == bautizo.IdParroquia
                                 select p).ToList();
                {
                    foreach (tblBautizo  reg in condicion)
                    {
                        _bautizo.Add(new dtoBautizos());
                        _bautizo[i].NumLibro = reg.num_libro;
                        _bautizo[i].NumFolio = reg.num_folio;
                        _bautizo[i].NumAsiento = reg.num_asiento;
                        _bautizo[i].FechaBautizo = Convert.ToString(reg.fecha_bautizo.Value.Day + "/" + reg.fecha_bautizo.Value.Month + "/" + reg.fecha_bautizo.Value.Year);
                        _bautizo[i].TipoIdentificacion = reg.tipo_identificacion;
                        _bautizo[i].Identificacion = reg.identificacion;
                        i++;
                    }
                }

            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrió un error al obtener los datos " + ex.Message);
            }

            return _bautizo;

        }

        /// <summary>
        /// Metodo para el registro de confirma
        /// </summary>
        /// <param name="pers"></param>
        /// <returns></returns>
        public dtoError RegistrarBautizo(dtoBautizos bautizo)
        {
            //Otra información
            _tbbautizo.id_parroquia = bautizo.IdParroquia;
            _tbbautizo.num_asiento = bautizo.NumAsiento;
            _tbbautizo.num_folio = bautizo.NumFolio;
            _tbbautizo.num_libro = bautizo.NumLibro;
            _tbbautizo.fecha_bautizo = Convert.ToDateTime(bautizo.FechaBautizo);
            //Información del confirmando
            _tbbautizo.tipo_identificacion = bautizo.TipoIdentificacion;
            _tbbautizo.identificacion = bautizo.Identificacion;
            //Información de los padres
            _tbbautizo.tipo_identificacion_padre = bautizo.TipoIdentificacionPadre;
            _tbbautizo.id_padre = bautizo.IdPadre;
            _tbbautizo.tipo_identificacion_madre = bautizo.TipoIdentificacionMadre;
            _tbbautizo.id_madre = bautizo.IdMadre;
            //Información Padrinos
            _tbbautizo.tipo_identificacion_padrino = bautizo.TipoIdentificacionPadrino;
            _tbbautizo.id_padrino = bautizo.IdPadrino;
            _tbbautizo.tipo_identificacion_madrina = bautizo.TipoIdentificacionMadrina;
            _tbbautizo.id_madrina = bautizo.IdMadrina;
            //Información clérigo
            _tbbautizo.tipo_identificacion_clerigo = bautizo.TipoIdentificacionClerigo;
            _tbbautizo.id_clerigo = bautizo.IdClerigo;

            try
            {
                _resp = ExisteBautizo(bautizo);
                if (_resp.IdError == -101)
                {
                    dc.tblBautizos.InsertOnSubmit(_tbbautizo);
                    dc.SubmitChanges();
                    _resp.Mensaje = "Información guardada correctamente.";
                    _resp.IdError = 100;
                }

                return _resp;
            }

            catch (Exception ex)
            {
                _resp.IdError = -100;
                _resp.Mensaje = ex.Message.ToString();
                return _resp;
            }

        }

        public dtoError ExisteBautizo(dtoBautizos bautizo)
        {

            var condicion = (from p in dc.tblBautizos
                             where p.num_asiento == bautizo.NumAsiento
                             && p.num_folio == bautizo.NumFolio
                             && p.num_libro == bautizo.NumLibro
                             && p.id_parroquia == bautizo.IdParroquia
                             select p).Count();
            if (Convert.ToInt32(condicion.ToString()) > 0)
            {
                _resp.Mensaje = "Registro ya existe.";
                _resp.IdError = 101;

            }
            else
            {
                _resp.IdError = -101;
                _resp.Mensaje = "Registro no existe.";
            }
            return _resp;
        }


    }
}
